package com.qdlc.p2p.biz.service;

import com.qdlc.p2p.biz.service.activity.ActivityPlanException;
import com.qdlc.p2p.dal.common.model.jpa.PageDataList;
import com.qdlc.p2p.dal.dto.CashAwardRule;
import com.qdlc.p2p.dal.dto.User;
import com.qdlc.p2p.dal.model.CashAwardRuleModel;

import java.util.Map;

/**
 * 现金奖励规则Service接口
 *
 * @author Kaiju Zhao
 * @date 2016-3-23
 */
public interface CashAwardRuleService {

	/**
	 * 新增现金奖励规则
	 *
	 * @author Kaiju Zhao
	 * @param model 现金奖励规则model
	 * @return
	 */
	int saveCashAwardRule(CashAwardRuleModel model);

	/**
	 * 修改现金奖励规则
	 *
	 * @author Kaiju Zhao
	 * @param model 现金奖励规则model
	 * @return
	 */
	int updateCashAwardRule(CashAwardRuleModel model);

	/**
	 * 修改现金奖励规则的状态
	 *
	 * @author Kaiju Zhao
	 * @param model 现金奖励规则model
	 * @return
	 */
	int toggleStatus(CashAwardRuleModel model);

	/**
	 * 根据id获取现金奖励规则
	 *
	 * @author Kaiju Zhao
	 * @param id 规则Id
	 * @return CashAwardRuleModel
	 */
	CashAwardRuleModel findCashAwardRuleById(long id);

	/**
	 * 分页获取现金奖励规则信息
	 *
	 * @author Kaiju Zhao
	 * @param model 现金奖励规则model
	 * @return 现金奖励规则分页信息
	 */
	PageDataList<CashAwardRuleModel> list(CashAwardRuleModel model);

	/**
	 * 给用户送现金
	 *
	 * @param user
	 * @param money
	 * @throws ActivityPlanException
	 * @author linya
	 */
	void giveMoney(User user, double money);

	/**
	 * 先声夺人 一掷千金 大功告成奖颁奖
	 *
	 * @author hongbinglin
	 */
	void giveAwards(long borrowId);

	/**
	 * 获取活动过期时间 以及活动规则配置
	 *
	 * @author hongbinglin
	 */
	void getCashAwardRule(Map resMap ,String ench,String remark,long startTime);

	/**
	 *  给予客户投资自动返利
	 *
	 * @author hongbinglin
	 */
	void giveRebate(User user,double money);
}
